網站應用程式安全測試是一個評估應用程式的安全性和性能的過程,並及時生成關於其安全水平和威脅暴露的報告。通常由安全專家和程式設計師來執行,使用以下技術來測試和強化應用程式的安全性:
網站應用程式模糊測試(fuzzing)是一種黑盒測試方法,用於識別網站應用程式中的編碼錯誤和安全漏洞,是一種質量檢查和保證技術。模糊測試工具(模糊器)生成大量的隨機數據稱為「fuzz」,並對目標網站應用程式使用這些數據,以發現各種攻擊可以利用的漏洞。攻擊者使用各種攻擊技術,以在最短時間內使受害者的網站應用程式崩潰並造成混亂。安全人員和網站開發人員使用這種模糊測試技術來測試開發的網站應用程式對緩衝區溢出、DOS、XSS 和SQL注入等攻擊的強壯性和免疫性。
網站應用程式的模糊測試包括以下步驟:
▪ 基於變異:在這種測試類型中,當前數據樣本創建新的測試數據,新的測試數據再次變異以生成更多隨機數據。這種測試從有效樣本開始,並不斷變異,直到達到目標為止。
▪ 基於生成:在這種測試類型中,新數據將從頭開始生成,所生成的數據量根據測試模型預定義。
▪ 基於協議:在這種測試類型中,協議模糊器向要測試的目標應用程式發送偽造的數據包。這種測試需要對正在測試的協議格式有詳細的了解。它涉及將一系列規範寫入模糊器工具,然後執行基於模型的測試生成技術,以遍歷所有列出的規範並添加數據內容、順序等方面的不規則性。
下圖顯示了模糊器的主要組件概覽。攻擊者腳本被提供給模糊器,然後模糊器將攻擊轉化為HTTP請求發送到目標。這些HTTP請求將從目標獲得響應,然後所有請求和響應都被記錄以供手動檢查。
原始碼檢視用於檢測已開發的網站應用程式中的錯誤和不規則性。可以手動執行原始碼檢視,也可以使用自動化工具來識別應用程式代碼中的特定區域,以處理身份驗證、會話管理和數據驗證相關的功能。它們可以識別未經驗證的數據漏洞和開發人員使用的不良編碼技術,允許攻擊者利用網站應用程式。
編碼是將源信息轉換為其等效的符號形式的過程,有助於隱藏數據的含義。在接收端,編碼的數據被解碼為純文本格式。解碼是編碼的反向過程。網站應用程式使用不同的編碼方案來安全地處理不尋常字符和二進制數據。
網頁瀏覽器/網頁伺服器允許URL只包含ASCII碼的可打印字符,這些字符可以被它們理解用於地址定位。URL編碼是將URL轉換為有效的ASCII格式的過程,以便可以安全地在HTTP上傳輸數據。在這個範圍內的幾個字符在URL方案或HTTP協議中提到時具有特殊含義,因此這些字符受到限制。URL編碼將不尋常的ASCII字符替換為 "%"後面跟著十六進制格式中的字符的兩位ASCII碼,例如:
%3d =
%0a 換行符
%20 空格
HTML 編碼
HTML編碼方案用於表示不尋常字符,以便可以安全地組合在HTML文件中。HTML編碼將不尋常字符替換為可以在文檔中識別的字符串,各種字符定義了文檔的結構。如果要使用與文檔中包含的字符相同的字符,可能會遇到問題。可以使用HTML編碼來克服這些問題。它定義了幾個HTML實體來表示特別常見的字符,例如
Unicode 編碼
Base64 編碼
Base64編碼方案使用僅包含可打印ASCII字符的方式來表示任何二進制數據。通常,它用於對SMTP進行安全傳輸的電子郵件附件的編碼,也用於編碼用戶憑據。
例如:
cake = 01100011011000010110101101100101
Base64編碼: 011000 110110 000101 101011 011001 010000 000000 000000
十六進制編碼
The HTML encoding scheme uses the hex value of every character to represent a collection of characters for transmitting binary data.
For, example:
Hello A125C458D8
Jason 123B684AD9
網頁瀏覽器/網頁伺服器允許URL只包含ASCII碼的可打印字符,這些字符可以被它們理解用於地址定位。URL編碼是將URL轉換為有效的ASCII格式的過程,以便可以安全地在HTTP上傳輸數據。在這個範圍內的幾個字符在URL方案或HTTP協議中提到時具有特殊含義,因此這些字符受到限制。URL編碼將不尋常的ASCII字符替換為 "%"後面跟著十六進制格式中的字符的兩位ASCII碼,例如:
HTML編碼方案用於表示不尋常字符,以便可以安全地組合在HTML文件中。HTML編碼將不尋常字符替換為可以在文檔中識別的字符串,各種字符定義了文檔的結構。如果要使用與文檔中包含的字符相同的字符,可能會遇到問題。可以使用HTML編碼來克服這些問題。它定義了幾個HTML實體來表示特別常見的字符,例如:
Unicode編碼有兩種類型:16位Unicode編碼和UTF-8。
cake = 01100011011000010110101101100101
Base64編碼: 011000 110110 000101 101011 011001 010000 000000 000000
十六進制編碼
HTML編碼方案使用每個字符的十六進制值來表示一組字符,用於傳輸二進制數據。
例如:
Hello A125C458D8
Jason 123B684AD9
網站應用程式在全球數位轉型中扮演了重要角色。這種快速的發展激勵了攻擊者使用不同的技術來利用應用程式中存在的漏洞和違規情況,從而危害系統安全。為了阻止這些攻擊,安全專業人員需要實施各種安全策略和測試策略。白名單和黑名單就是一種可以保持應用程式、網絡和基礎設施安全的安全策略。使用這種策略,可以創建一個允許的實體清單和一個需要被阻擋的清單。因此,在惡意軟件進入組織網絡之前,可以有效地阻止它。
應用程式白名單指定應該被允許在系統中執行的應用程式組件清單,例如軟體庫、插件、擴展和配置檔案,或者合法的軟體。它有助於防止未經授權的執行和惡意程序的傳播。它還可以防止未經批准或易受攻擊的應用程式的安裝。白名單提供了更大的靈活性,可以防止勒索軟體和其他類型的惡意軟件對網站應用程式進行攻擊。
應用程式黑名單指定不允許在系統或網絡中執行的惡意應用程式或軟體。黑名單可以通過阻止可能導致損害或導致攻擊的惡意應用程式來執行。黑名單是一種基於威脅的方法,它無法檢測現代威脅,導致攻擊導致數據損失。因此,定期更新黑名單非常重要,以防禦最新的惡意軟體攻擊。應用程式黑名單可以通過在防火牆層次添加應用程式的名稱或安裝特定軟體來執行。
URL黑名單阻止用戶載入黑名單中的URL的網頁。用戶可以訪問除黑名單中的URL之外的所有URL。URL白名單允許用戶訪問只有特定URL的例外情況,這些URL已添加到URL黑名單中。URL白名單使用以下方法進行: